#!/bin/bash
#
# Check that Rust documentation is generated without any warnings.

readonly SCRIPTS_DIR="$(dirname "$0")"
# shellcheck source=scripts/common
source "$SCRIPTS_DIR/common"

DOCS_OUT="$(cargo doc --document-private-items --no-deps 2>&1)"

# `cargo doc` produces warnings for incorrect paths. These warnings cannot be promoted to errors, so we use grep to detect them.
if grep --ignore-case --quiet --regexp='^warning' <<< "$DOCS_OUT"; then
  echo "Warnings found when generating the docs."
  exit 1
fi

# Check for any deadlinks in the generated docs.
if ! cargo deadlinks --dir target/doc; then
  echo "Found deadlinks in the generated docs."
  # TODO(#2007): Return error once invalid documentation from `tracing` crate is fixed.
  exit 0
fi
